IF EXISTS (SELECT * FROM SYSOBJECTS WHERE name='fnGetUsuarioSession' and XTYPE='FN')
BEGIN
	DROP FUNCTION [dbo].[fnGetUsuarioSession]
END
GO
CREATE FUNCTION fnGetUsuarioSession
(
	 
)
RETURNS VARCHAR(32)
WITH ENCRYPTION
AS
BEGIN
	DECLARE @RETURN VARCHAR(32)
	DECLARE @ParamTime VARCHAR(128)
	
	SELECT @ParamTime=Valor FROM [SeguridadParametro] WHERE CodParametro='TiempoMaxInactividadSession'
	
	--- verifico el valor del parametro
	IF ISNUMERIC(@ParamTime)=0
	BEGIN
		RETURN NULL
	END
	
	
	------- Valido si la session ha caducado, devuelvo un NULL para que se genere la excepcion correspondiente en la aplicacion.
	IF EXISTS (SELECT *
				FROM [dbo].[SeguridadDatosSession] 
					WHERE 
						Host=HOST_NAME()
						AND  datediff(minute,fechaInicio,getdate())>CASE WHEN CONVERT(INT,@ParamTime)>0 THEN CONVERT(INT,@ParamTime) ELSE 360 END
			  )
	BEGIN
		RETURN NULL
	END		  
	
	SELECT @RETURN=Usuario FROM [dbo].[SeguridadDatosSession] WHERE Host=HOST_NAME()
	RETURN @RETURN
END
GO
